.text
.section .rodata
.align 3
.LC0:
    .string "Month %2d has %2d days.\n"

.text
.globl main
.type main, @function
main:
    // 12 * 4 + 4 + sizeof(ra) + sizeof(s0) = 68
    // 这里和x86不一样，需要加上ra和s0的数量
    addi sp, sp, 80
    sd ra, 72(sp)
    sd s0, 64(sp)
    // gcc生成的汇编，这里是减80，但是我想和x86保持一致
    addi s0, sp, 64
    // 1
    li a5, 31
    sw a5, -48(s0)
    // 2
    li a5, 28
    sw a5, -44(s0)
    // 3
    li a5, 31
    sw a5, -40(s0)
    // 4
    li a5, 30
    sw a5, -36(s0)
    // 5
    li a5, 31
    sw a5, -32(s0)
    // 6
    li a5, 30
    sw a5, -28(s0)
    // 7
    li a5, 31
    sw a5, -24(s0)
    // 8
    li a5, 31
    sw a5, -20(s0)
    // 9
    li a5, 30
    sw a5, -16(s0)
    // 10
    li a5, 31
    sw a5, -12(s0)
    // 11
    li a5, 30
    sw a5, -8(s0)
    // 12
    li a5, 31
    sw a5, -4(s0)

    li a5, 0
    sw a5, -52(s0)
    j .L2
.L1:
    lw a5, -52(s0)
    addiw a1, a5, 1
    addi a4, s0, -48
    slli a5, a5, 2
    add a5, a4, a5
    lw a2, 0(a5)
    lui a5, %hi(.LC0)
    addi a0, a5, %lo(.LC0)
    call printf
    lw a5, -52(s0)
    addiw a5, a5, 1
    sw a5, -52(s0)
.L2:
    lw a5, -52(s0)
    li a4, 12
    blt a5, a4, .L1

    li a0, 0
    ld ra, 72(sp)
    ld s0, 64(sp)
    addi sp, sp, 80
    jr ra